﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Drawing;

namespace Asol.Reporting.Editor.Pics
{
    /// <summary>
    /// Knihovna ikon 32 x 32 px
    /// </summary>
    public class IconLibrary32
    {
        #region Image Documentation
        /// <summary>
        /// Vrátí obrázek, vytvořený na základě obrázku documentation.png.
        /// Vrací přímou referenci na objekt v paměti = volání je velice rychlé (pod 1 mikrosekundu), 
        /// ale protože se vrací živá reference, pak zásahy do vráceného objektu se projeví v objektu v paměti = natrvalo.
        /// Případně je možno vyvolat metodu Documentation_Reset(), která zajistí regenerování obrázku z jeho definice.
        /// Bezpečnější je používání property Documentation, která vrací vždy nový objekt.
        /// Pro používání pro Button.Image, kde bude nastavováno Button.Enabled = false; je třeba použít property Documentation_FromFile.
        /// </summary>
        /// <remarks>
        /// Plné jméno vstupního souboru:
        /// C:\LCS\Tools\GreenSchedule4\FrxEditor\Pics\32\documentation.png
        /// </remarks>
        public static System.Drawing.Image Documentation_Cached
        {
            get
            {
                if (_Documentation == null) _Documentation = Documentation;
                return _Documentation;
            }
        }
        /// <summary>
        /// Vrátí obrázek, vytvořený na základě obrázku documentation.png.
        /// Nelze používat jako Image pro Buttony, kde bude nastavováno Enabled = false (pak dojde k chybě .NET: Ot of memory).
        /// Pak je třeba použít Image Documentation_FromFile.
        /// Vrací vždy novou instanci = volání je při častém používání výrazně (až 1000krát) pomalejší než použití Documentation_Cached
        /// (kde ale hrozí nebezpečí pokažení obrázku v paměti).
        /// Čas pro vytvoření jednoho Image (tj. každé jednotlivé čtení této property) pro obrázek velikosti 32x32 px (32bpp) je průměrně 350 mikrosekund.
        /// Pokud je třeba používat obrázek často a rychle, je možné využít property Documentation_Cached.
        /// </summary>
        /// <remarks>
        /// Plné jméno vstupního souboru:
        /// C:\LCS\Tools\GreenSchedule4\FrxEditor\Pics\32\documentation.png
        /// </remarks>
        public static System.Drawing.Image Documentation { get { return _ImageCreateFrom(_Documentation_string, null); } }
        /// <summary>
        /// Vrátí obrázek, načtený ze souboru documentation.png.
        /// Vrací vždy novou instanci = volání je při častém používání výrazně (až 1000krát) pomalejší než použití Documentation_Cached
        /// (kde ale hrozí nebezpečí pokažení obrázku v paměti).
        /// Čas pro vytvoření jednoho Image (tj. každé jednotlivé čtení této property) pro obrázek velikosti 32x32 px (32bpp) je průměrně 350 mikrosekund.
        /// Pokud je třeba používat obrázek často a rychle, je možné využít property Documentation_Cached.
        /// </summary>
        /// <remarks>
        /// Plné jméno vstupního souboru:
        /// C:\LCS\Tools\GreenSchedule4\FrxEditor\Pics\32\documentation.png
        /// </remarks>
        public static System.Drawing.Image Documentation_FromFile { get { return _ImageCreateFrom(_Documentation_string, "documentation.png"); } }
        /// <summary>
        /// Vygeneruje a vrátí string, který definuje obsah souboru Documentation
        /// </summary>
        /// <returns></returns>
        private static string _Documentation_string()
        {
            System.Text.StringBuilder sb = new System.Text.StringBuilder(3392);
            sb.Append("iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAA");
            sb.Append("OpgAABdwnLpRPAAAAAZiS0dEAAAAAAAA+UO7fwAAAAlwSFlzAAAN1wAADdcBQiibeAAAAAl2cEFnAAAAIAAAACAAh/qcnQAAB6hJREFUWMPNlluMXVUZx3/rsvc+9zPt");
            sb.Append("0A5tp7SFoUzbaUcBuYzFlpZLSMRobAzBF/HB+EB8MVFfffeF2JKgYgzT6oO8KLw0Uig2oRJBpdhq6VCkHdqhnTNnZs5t7332Xp8P58LMdPpI9Et29rqcs//fZf3/34L/");
            sb.Append("samlkyAIhqMoWv95AgZBcC2Koune3C7djKJou4ic+FwjVuogsLoDPbt0eRqtdXcmiCxNliAIqjtXSqHUZ/u9sVLLvykoNt46dAOWBdBajzjnNgIbADKZDL7vU6vVkA46");
            sb.Append("jWZIkqSUSzmCwENrBQLaaJAOchwnGKOoNSKSdsratUUQwfMM7Xa6akYsgHNuY61We7NQKDA1NSXPP39ETb40ydTFj1hYWKDjpOKvf79IIR/geZbZSp1SKcuVmSq3Dg1Q");
            sb.Append("rdYpl3JsH9nIpcuzDK0rc+bcJRYWm6xfN8D+idEeZqM/eHP4sxLUajWCIEBrrTzPZ7ZSIZsNmP6kRT6XIZ8NePzAbjzPxxpFO3HkcwHOAUpIE0c+n2Wh1mTH9k14xnDh");
            sb.Append("oxlGtm1g5lqV1HUq8f5L/l/Gdm0E5Iy65+PxvgOFQgHP8xARqVarqjwwQLvd5h9nPqbWCtFK45ywe+dmRrYNMX1ljg8+nOGJR74IAn86+T5XP53nW19/kFhrzl38hEvT");
            sb.Append("Fd44dRZtDN95ah8pqLbzQHJg0j39k6OUGhGRYWBYRCavXZ/F932azSZGQzYbIIAxmihK8DxLoxlRLmYJo4TAM1jPkjqHEhClMFpjjaYZxuRzAfV6SKFU4t0XPe4dH0Fl");
            sb.Append("DWrsrLIAIjIFTAEHABqNBlEUkgl8Xjz2Bls2rWNuvk42G1Aq5ajXW9wyWEKjGL1rE8dffw8R8DxDLhsQxwlz83W+feghfv/H06wZyHPoyQfQQDtKaMchfpdlK8jCQRF5");
            sb.Append("7T8fX8JaizGKQj6LtRaFkAo4EQJrieM2ohQKhXNCqZQnjCJ8a6nXQ4xnUIDnWzxjqDcjCvk8f35Occ/4rWQzGvPgFbWqDnS4rfCs5fjr73NlZo5MNqCYyzC/2KTZCnnm");
            sb.Append("6f0opTHa8JvfvcnWLeuoVGokScr69QM89vA4aZJy+u0PmL46x6Gv3Q9Auw1x3MJqc3MhUkqhtSJJhccP7iHwLUopqgtNBtcU+fT6Ivl8liRJMUrxg+89gaBoNUNy+Qwg");
            sb.Append("pKkQifDQxA6cE+KoDT7ia5SlhaT6/GoOSI/zoPB9y2sn/8lHl66Tz/lsHh7k8nSHns1mxP33bOfc+csoFEHGQ1Lh9q1DzFyrcvXTeeK4zZYtQxz8yhiqU3P1lR8yBvFZ");
            sb.Append("gOOv/qRzBpYo4WYRObqwuEgQBDQaDazVeMbggDRxNKOYtaU8aIVLBWsNSilEBK01qROsViitUQqcE5IkRQSCIJBnD/9N3bXnbsKUMz86oMZXVcIjR46oyclJrs7MsLCw");
            sb.Append("QJq4/rnIBT5RnKCUAqVInXT2AKUcKIVLu+NuOUF1s4qaqTYpVNqkytuzrARLldD3fSqVCp61fSC6Dix9lq0tObysGItIv6dU6465uiNZ2gtWKmGlUlEDAwMdYbkZ4Mq1");
            sb.Append("JaBLgVeuzTWFUk1IexlaTQkbzSaZTKbfDXusaDQjyqU8njWEUUI+F/Tbdpqk/XKA4HkeSZJibSfGJEmw1rL1uye5bfQ+EgJO/9jeoIQP95QwDEP0ikg/vHiN8x9+woah");
            sb.Append("NTTqIXMLDawxeJ5hfNc2do0OI4Dnebz8ylvMVRsM3VJmbr7GM08/0ilBIyXfcMTiVtWBXkY6j9YYo/C9Tv/f++AoD9x7Z1flOkIyV11g7ZoyAGEY4fseoDj05Jf7kVfm");
            sb.Append("6n2aL0Y5da2ZIbmJDvSUCAVkfI9fHj3BmnIBozXNVkQ7SVk3WKI632Dn6DA7Rob5+Quvcvu2IXIZn91jW/nty6d4dN8e8vkMrxx/h8G1RZ76xkOdAP8wMTYLZwEmXvjF");
            sb.Append("Db3ggIicmK1UMMZgjKZUzHW3DHEc4/sB4LrxKJykaL1aHA7QS+YCKLn7p0U1cWg31nDmuR2nx1dVwl4JrLX8avJ18rmAOGqzYcNaksTx2P49OKF/sp1LsNbw66MnyAQe");
            sb.Append("O0c38+57F9EoHMLY6Gbuv/cuAHV9ocnMbA0/MMvuA3eKyMYuC47GcYzn+4TNJnPVGps2DfX9c2mK0po0SaGrgADGGJIkwff9ZRG1wphs5rO18vcV41/dSpCxvPboVJ8F");
            sb.Append("G06dOnVy7969XLhwQY4dO6YOHz7M7Ows597+F2+9c4FarUWplKOQz3B+6gqlYo59Ezu5bXhdn/PGGJxzfeoCZAIP5xzOOay1LIYwV2/hJ3o5CxYXF0nTFKWUKhaLVCoV");
            sb.Append("APZN7MJYQxQntOOEcrnAl74wwuBgCURoJyla634vWArelXnSNCWKIorFIoRQbTbx3Ip2XCgUMMYgIlKr1VS53KFWnKTotKOIQeARx21KpRztdnKD9K58O+dot9uEYUgY");
            sb.Append("dh2IodoK8dPlN6IRYDOwSUQmozgm8H0ajUb/Y0rr5cLUZ2xnvDILPQ1oNBq0Wi1arRZ33H6HqG8qxX5QhvPyLP27es8els/JkiQV6Xh2Xx/tZyvuhNbakSRJbusFt8p7");
            sb.Append("5drNfnfT/2mt/+2c+4D/F/sv0BniMObrWUkAAAAldEVYdGNyZWF0ZS1kYXRlADIwMDktMTEtMTVUMTc6MDI6MzctMDc6MDCHD5SPAAAAJXRFWHRkYXRlOmNyZWF0ZQAy");
            sb.Append("MDEwLTAxLTExVDA5OjI5OjU5LTA3OjAwMU+NtQAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxMC0wMS0xMVQwOToyOTo1OS0wNzowMEASNQkAAABndEVYdExpY2Vuc2UAaHR0");
            sb.Append("cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbGljZW5zZXMvYnktc2EvMy4wLyBvciBodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9saWNlbnNlcy9MR1BMLzIuMS9bjzxj");
            sb.Append("AAAAJXRFWHRtb2RpZnktZGF0ZQAyMDA5LTA4LTI3VDIxOjUxOjI1LTA2OjAwEs2hUgAAABN0RVh0U291cmNlAE94eWdlbiBJY29uc+wYrugAAAAndEVYdFNvdXJjZV9V");
            sb.Append("UkwAaHR0cDovL3d3dy5veHlnZW4taWNvbnMub3JnL+83qssAAAAASUVORK5CYII=");
            return sb.ToString();
        }
        /// <summary>
        /// Resetuje obrázek v paměti.
        /// Následující použití property Documentation_Direct si vytvoří nový, korektní - podle jeho originální deklarace.
        /// Tuto metodu je vhodné použít v situaci, kdy je správnost obrázku v paměti nejistá.
        /// </summary>
        public static void Documentation_Reset()
        {
            _Documentation = null;
        }
        /// <summary>
        /// Úložiště objektu v paměti, při prvním použití Documentation_Direct je objekt naplněn a následně využíván.
        /// </summary>
        private static System.Drawing.Image _Documentation = null;
        #endregion
        #region Image DocumentationHot
        /// <summary>
        /// Vrátí obrázek, vytvořený na základě obrázku documentation_hot.png.
        /// Vrací přímou referenci na objekt v paměti = volání je velice rychlé (pod 1 mikrosekundu), 
        /// ale protože se vrací živá reference, pak zásahy do vráceného objektu se projeví v objektu v paměti = natrvalo.
        /// Případně je možno vyvolat metodu DocumentationHot_Reset(), která zajistí regenerování obrázku z jeho definice.
        /// Bezpečnější je používání property DocumentationHot, která vrací vždy nový objekt.
        /// Pro používání pro Button.Image, kde bude nastavováno Button.Enabled = false; je třeba použít property DocumentationHot_FromFile.
        /// </summary>
        /// <remarks>
        /// Plné jméno vstupního souboru:
        /// C:\LCS\Tools\GreenSchedule4\FrxEditor\Pics\32\documentation_hot.png
        /// </remarks>
        public static System.Drawing.Image DocumentationHot_Cached
        {
            get
            {
                if (_DocumentationHot == null) _DocumentationHot = DocumentationHot;
                return _DocumentationHot;
            }
        }
        /// <summary>
        /// Vrátí obrázek, vytvořený na základě obrázku documentation_hot.png.
        /// Nelze používat jako Image pro Buttony, kde bude nastavováno Enabled = false (pak dojde k chybě .NET: Ot of memory).
        /// Pak je třeba použít Image DocumentationHot_FromFile.
        /// Vrací vždy novou instanci = volání je při častém používání výrazně (až 1000krát) pomalejší než použití DocumentationHot_Cached
        /// (kde ale hrozí nebezpečí pokažení obrázku v paměti).
        /// Čas pro vytvoření jednoho Image (tj. každé jednotlivé čtení této property) pro obrázek velikosti 32x32 px (32bpp) je průměrně 350 mikrosekund.
        /// Pokud je třeba používat obrázek často a rychle, je možné využít property DocumentationHot_Cached.
        /// </summary>
        /// <remarks>
        /// Plné jméno vstupního souboru:
        /// C:\LCS\Tools\GreenSchedule4\FrxEditor\Pics\32\documentation_hot.png
        /// </remarks>
        public static System.Drawing.Image DocumentationHot { get { return _ImageCreateFrom(_DocumentationHot_string, null); } }
        /// <summary>
        /// Vrátí obrázek, načtený ze souboru documentation_hot.png.
        /// Vrací vždy novou instanci = volání je při častém používání výrazně (až 1000krát) pomalejší než použití DocumentationHot_Cached
        /// (kde ale hrozí nebezpečí pokažení obrázku v paměti).
        /// Čas pro vytvoření jednoho Image (tj. každé jednotlivé čtení této property) pro obrázek velikosti 32x32 px (32bpp) je průměrně 350 mikrosekund.
        /// Pokud je třeba používat obrázek často a rychle, je možné využít property DocumentationHot_Cached.
        /// </summary>
        /// <remarks>
        /// Plné jméno vstupního souboru:
        /// C:\LCS\Tools\GreenSchedule4\FrxEditor\Pics\32\documentation_hot.png
        /// </remarks>
        public static System.Drawing.Image DocumentationHot_FromFile { get { return _ImageCreateFrom(_DocumentationHot_string, "documentation_hot.png"); } }
        /// <summary>
        /// Vygeneruje a vrátí string, který definuje obsah souboru DocumentationHot
        /// </summary>
        /// <returns></returns>
        private static string _DocumentationHot_string()
        {
            System.Text.StringBuilder sb = new System.Text.StringBuilder(2736);
            sb.Append("iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAA");
            sb.Append("CXBIWXMAAA3WAAAN1gGQb3mcAAAAE3RFWHRTb3VyY2UAT3h5Z2VuIEljb25z7Biu6AAAABp0RVh0U29mdHdhcmUAUGFpbnQuTkVUIHYzLjUuMTAw9HKhAAAHM0lEQVRY");
            sb.Append("R81Xf0xVZRg+OtNapa21Vc7NftiPZVvWHxXLMISMIiLSmRUza2UuXc7lamvVWm3Naq4i0Ub4i2mkhpplqRSJhiiKXATBiyiEhYBXkQv357n3Pj3ve87Be+nif66+7d13");
            sb.Append("+O453/s+7/u8z/dhGP+nMWrUqHGM575LabaPIWFPxSUe9Dz1YknXAPr/3Ajfqa22laK/XWyrbfK80V4rtd75S2ybZX+LbYe/I9F8HTsUWtIAhg8fPoE/pNJekJcCXRUI");
            sb.Append("9dRbThiMWE/TCpyr/1yf/Z07EOgu43tlCHoqEDxD8/xBp1znmvdkCc67VyNw5g++J3tV6zxkAOI87HXrC73NBbHvFxq49VoDofONAwGcdxeibm0m3KUz0LItD7WrpvF5");
            sb.Append("JvYtS0HT9zNwqHAKGjfkortmCY5vzcPpynfRvOV5uNZk4uTPcxE+X+ME8ECyEqT6mbpoqAfelkL8sNiQVCES8qDnaD76WkvgYzZ8f5USYbmi9neWIex1cWNabw1CZ6sQ");
            sb.Append("CbYr6nBfPSL+Fpw7uoJzK/raShE6pwHE6otHAjU30cbXxQeSGu5t1Ai9x1fEVr1iYOwYA2Z/CxpLclCzMo2IM1BTlI7Oqne1BGcOL0HTphlML53T3KWzsL9gMsvAspyt");
            sb.Append("RvfBJczAbBxYkYqDhekw+9yIcv/Da64EDt0F1N4hIK0xbNgw4cAjtLx4DiiZTm8nymqWo5rIXFrrcK+L62UMsFGdmV4iDrTC9Lm5RvO18O92RMNdzFIjYhEP96hHjJtX");
            sb.Append("F41A7OCdQMPECwHEpUK7oO9ksTJdCFWxdBKaNjyDg1+nkgOPo5n1rV+XhdZf5qLtl3kk3EYc+iadHEhH7epM8mAGjhRnozI/hUFW4MDXU3CU30spZFQWkFuVUoJbkgaQ");
            sb.Append("rgG0rtf28nds0/oKsoivURFrfYlWshAmckEo6ACfrsdMomUHSfnEJAuIevldiwZQ8YWB/t9vQLRq7EUCaCPp2NOB7nLWMQ8Hlk9WdE0bZxJtBtE9yNRXKbHC7JQDy6co");
            sb.Append("0wV57apMnNg+F6a/ncG50bH3fX43iwTt0AB+/czAuZ1jEKy4dugAtNdFSFhnYXokSCShVu3lqNkFX0e5Ml7qHWG9BWEs6iPRBKVPqMz3epg5ZoS/6XO/liC2Z6kB786R");
            sb.Append("CJRffixZOyoHfKdKVVQEZcu2Odj31UM4vDIDbbvm6dxQksuOyIDHVaA1b9owE8d/mIPmzbPhOZyPth2vo25NlvKibddCRR/xWxmg04n/cjxYCUOsaSTQRcYzzRQQs09q");
            sb.Append("38h2I/s7iZ6E0gwQYTTUxTp7rJlIRTtinCUjko1YxMt3u3Q/ycD8r2qQT1H8tByDdCBOCTe9YeBmKmE07FVh0UDYblJzCUJIJ7ohNRZySXrVfAyKSAWtOFQLetRE5GRM");
            sb.Append("/3Av3t4cxuItmo2BkVQJ5QNxLr1+UefimDbYsTgVc4KQ/aa+VYFXi4N4qXhQAPFKWPSygXFUwmgkmOBcSuMgF8IlRW2jdRw7QUg2ZUxasBtPFwSQvTw6tBLKxuJc0j2A");
            sb.Append("vLeeXVE+UPewt0XryxypRcMWUsuhh2umltAZzvP4l37Hw5/4kPJJJGkbpskH1oETV3dBTsE5XfkR1TALbTsXoLk0jx2RSbZno+HbZ3C2rsh2LrU20cyuqF2dhRM/zcOR");
            sb.Append("dTkDgYye+Svuer8PE94LDy3F0u9adyGc6jx1PSRt5FN0Me11awTPugaeI/4uZkUycmEIcn+ndRRzxIycfbhusYlrFkWH1gFhvrA+wjZTLf+OvU41k96uKZrG834OXETX");
            sb.Append("uf9jhDz1VMI09v4C/L37HQQ8Lp6AabzArOd5UsaTMAPHmC1nJNWBwYeRBiAyy7qLqllmaj/buAU7FdC0eZAAOu6d+HVTM3DvB1dhfkMKFjalJOiAE4NyQOvP9IvQuIi6");
            sb.Append("adMsNLCO7b+9yfov1DJcIBxJp2QzyY8cquIs8kFuTzk4sjZX5+7qpQORjFs0HNN3343nqu5J6ILbGMEU504om8vZLd3gO2VdJq1BxKboPlkvbKdjp82k9vLd4GH6E9dG");
            sb.Append("v2bg4R9vQkbZhEQhOr1ntn7b686P7XxvpCqhjFO/LdKbTd3abN4F5uDPskXYz9PvyLpc3gV4jZMgxEwSlCaBOLM8x7RM0qZWSxovGphYcj3u3XJjYgBtP2Xoh7yUovLT");
            sb.Append("a/ROKCMS6LBPtnaWRa5tJm/BwnzW1MmEOKeDfzm3g5HMOEJnPMvr3sqrMX69+rggxR27n0/IwNjRVgADWu9IbZzSJUOvqG3kAkjkWQgtp6tmINfAFcsuw5jCUQkByJ0w");
            sb.Append("zbkTOrVUuXUk1zlg4gNweBCP3k65wwlpZ/nHhZddZow6wACMLw0MW2Yk1QHtgksxoqYlUAR5f7KLiK6NGDFCMiH/u4ml25bBWexR2jTbHuPsWCafxR637QnOYlm2Pck5");
            sb.Append("27anePe4fcgA/osf/gGeZFWx6mqdqgAAAABJRU5ErkJggg==");
            return sb.ToString();
        }
        /// <summary>
        /// Resetuje obrázek v paměti.
        /// Následující použití property DocumentationHot_Direct si vytvoří nový, korektní - podle jeho originální deklarace.
        /// Tuto metodu je vhodné použít v situaci, kdy je správnost obrázku v paměti nejistá.
        /// </summary>
        public static void DocumentationHot_Reset()
        {
            _DocumentationHot = null;
        }
        /// <summary>
        /// Úložiště objektu v paměti, při prvním použití DocumentationHot_Direct je objekt naplněn a následně využíván.
        /// </summary>
        private static System.Drawing.Image _DocumentationHot = null;
        #endregion
        #region Image DocumentationDisable
        /// <summary>
        /// Vrátí obrázek, vytvořený na základě obrázku documentation_disable.png.
        /// Vrací přímou referenci na objekt v paměti = volání je velice rychlé (pod 1 mikrosekundu), 
        /// ale protože se vrací živá reference, pak zásahy do vráceného objektu se projeví v objektu v paměti = natrvalo.
        /// Případně je možno vyvolat metodu DocumentationDisable_Reset(), která zajistí regenerování obrázku z jeho definice.
        /// Bezpečnější je používání property DocumentationDisable, která vrací vždy nový objekt.
        /// Pro používání pro Button.Image, kde bude nastavováno Button.Enabled = false; je třeba použít property DocumentationDisable_FromFile.
        /// </summary>
        /// <remarks>
        /// Plné jméno vstupního souboru:
        /// C:\LCS\Tools\GreenSchedule4\FrxEditor\Pics\32\documentation_disable.png
        /// </remarks>
        public static System.Drawing.Image DocumentationDisable_Cached
        {
            get
            {
                if (_DocumentationDisable == null) _DocumentationDisable = DocumentationDisable;
                return _DocumentationDisable;
            }
        }
        /// <summary>
        /// Vrátí obrázek, vytvořený na základě obrázku documentation_disable.png.
        /// Nelze používat jako Image pro Buttony, kde bude nastavováno Enabled = false (pak dojde k chybě .NET: Ot of memory).
        /// Pak je třeba použít Image DocumentationDisable_FromFile.
        /// Vrací vždy novou instanci = volání je při častém používání výrazně (až 1000krát) pomalejší než použití DocumentationDisable_Cached
        /// (kde ale hrozí nebezpečí pokažení obrázku v paměti).
        /// Čas pro vytvoření jednoho Image (tj. každé jednotlivé čtení této property) pro obrázek velikosti 32x32 px (32bpp) je průměrně 350 mikrosekund.
        /// Pokud je třeba používat obrázek často a rychle, je možné využít property DocumentationDisable_Cached.
        /// </summary>
        /// <remarks>
        /// Plné jméno vstupního souboru:
        /// C:\LCS\Tools\GreenSchedule4\FrxEditor\Pics\32\documentation_disable.png
        /// </remarks>
        public static System.Drawing.Image DocumentationDisable { get { return _ImageCreateFrom(_DocumentationDisable_string, null); } }
        /// <summary>
        /// Vrátí obrázek, načtený ze souboru documentation_disable.png.
        /// Vrací vždy novou instanci = volání je při častém používání výrazně (až 1000krát) pomalejší než použití DocumentationDisable_Cached
        /// (kde ale hrozí nebezpečí pokažení obrázku v paměti).
        /// Čas pro vytvoření jednoho Image (tj. každé jednotlivé čtení této property) pro obrázek velikosti 32x32 px (32bpp) je průměrně 350 mikrosekund.
        /// Pokud je třeba používat obrázek často a rychle, je možné využít property DocumentationDisable_Cached.
        /// </summary>
        /// <remarks>
        /// Plné jméno vstupního souboru:
        /// C:\LCS\Tools\GreenSchedule4\FrxEditor\Pics\32\documentation_disable.png
        /// </remarks>
        public static System.Drawing.Image DocumentationDisable_FromFile { get { return _ImageCreateFrom(_DocumentationDisable_string, "documentation_disable.png"); } }
        /// <summary>
        /// Vygeneruje a vrátí string, který definuje obsah souboru DocumentationDisable
        /// </summary>
        /// <returns></returns>
        private static string _DocumentationDisable_string()
        {
            System.Text.StringBuilder sb = new System.Text.StringBuilder(2056);
            sb.Append("iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAA");
            sb.Append("CXBIWXMAAA3WAAAN1gGQb3mcAAAAE3RFWHRTb3VyY2UAT3h5Z2VuIEljb25z7Biu6AAAABp0RVh0U29mdHdhcmUAUGFpbnQuTkVUIHYzLjUuMTAw9HKhAAAFNklEQVRY");
            sb.Append("R82XSUusRxSGr4orxV+QnYkg2UiERDdG7zUxMRoEB9AorsQJHHGeccBZVJxRnOd5nv0Nd5df05V6zu0j1W13ko0kDYeq7/tqeN/3DFX94cP/6RceHv6VxfPde5p3j6C0");
            sb.Append("P768vJj3NLvzx78TXQDs7e2Z/f39f20HBwdG7fDw0GBHR0dvjLUDAggNDf3afkiy9geDTk5OzMXFhQAADLa2tmZWVlakf3x8bE5PT2Xc2dmZ9GnZlHc7OztmY2ND3mOs");
            sb.Append("RRsUAJtfX1/LgM3NTU9OTo6Jiooyl5eXrwBYsLW11fT29pqBgQHT3Nws/draWtPT02MaGhpMd3e3WVxcNP39/WZmZsb09fXJnKGhIVnLC+AHdcH4+PirN5JA//DwYLa3");
            sb.Append("t01+fj5SyfPq6qowQg1kVtaocHV1JQvTnp+fm/v7e2EKmbu7O5lLu7u7KypYAJ6mpiYzOzuLfXZjIYlFQLi1teXJyMgwERER5ubmxnR2dhomwZgWZmy+tLQkzFkYUzUg");
            sb.Append("ApiFhQVRoL6+XtRRhekDYH5+HpJffiEhIcRAsrVCNwY0mGCJsQi+BiwbAZDNlPHt7a1RgzkKMvbp6Ula1q6rqxMSuCpQNkgWqOTIXVlZKb6FCf7Ev+3t7WZ4eFiMsY2N");
            sb.Append("jcKypaVFxra1tZnq6mpRinm8AxBrV1VVmcnJSVEhEIBPLgBYglxZwVjZ8t415rHJ4+OjqMVYDBWen59fXQCh0dFRMzU1FRwAQUPAEVD4EdmUHWxhh/T4HhB8J9JhTqzQ");
            sb.Append("Bwxgp6enRQECFJClpaVmcHDQ2AwIDoBc10LCBkyGCYBgyDfewZCNYIjxrFWUcSjHe+2TBeXl5QJgZGTkz6AxQMppNJPzNTU1kgF2krSaGcvLy8IOIzZQi+xgHPFCXCA3");
            sb.Append("YDUG7Kbf6sY2c750/SshPmQCEa/+RE76BBbfWBSGKKMGU/pEPcxRgz5jvS7wVFRUCECrgm8dCFQJVXb1Nz7XwqMByDykBwzA1HRTFyCACgsLTUdHh5hPIQpUCZmACgrA");
            sb.Append("3ZyNA20eaGMFwXrZ2dmSmljQSpienm4iIyNFvkDs3Y1d5hqsLmvXPQBg7bKyMrGglRBJ2VzLrKYbKqnftcK5Ue8vNzHhfqefkpJiiouLxQJlQYqWYqRXACo9JZToJoio");
            sb.Append("/WQEz/iTo9qVmqygdpByVE4FkpiYaPLy8gwnbtA0JN/dQqN1nUXYRBejZZw+a01wv6MCJd37zhMfH28yMzNxRfA6oJcIFiRYurq6JNdhC2tlNzc3JwAYgyrUeJTjeX19");
            sb.Append("XY5wagFqKSi3DhQVFb0RQQ4jBaAnmE7WcuoyJFbc53/oe1JTU4WIdYtPHVAkEgPqfwKOwZz7+HliYkKY+ke5BhtjUYp4oM/ZQMvZr8ASEhLkhOU8cbPgG/vwozW5E6qf");
            sb.Append("AcCh5M+YKscYrXx64vnHB/O0BOsacXFxkgElJSW+dYDjkUH27udhAHdCnmGtdzt8PzY2Jqcfkc1dABAYrtASrK2WYz2QWC82Ntbk5uaagoICXwCkCxPtpdRwYnEnZAJ+");
            sb.Append("19NML5a4SBlp7WcMG7mb67PejJgTExNjuPJlZWX5AiCCXQW4E/JM1XOrnf/h489ej2bmAgYXUE8oYryLjo42BGJaWpoPAO6EKXon1GjXW40CCFRq1QXKlk0UBGDZnLul");
            sb.Append("vewCwAOA5ORkKmLAOiBZ8B6m6WpJfq/Rn5TEfyHnFxYWhhL8d8M+eS3VtthP1n72Wppt1X6xfexXr6XbFvvNaxm2zfTa7/buEfOm+vyXL/4Cdoi3l9+8k40AAAAASUVO");
            sb.Append("RK5CYII=");
            return sb.ToString();
        }
        /// <summary>
        /// Resetuje obrázek v paměti.
        /// Následující použití property DocumentationDisable_Direct si vytvoří nový, korektní - podle jeho originální deklarace.
        /// Tuto metodu je vhodné použít v situaci, kdy je správnost obrázku v paměti nejistá.
        /// </summary>
        public static void DocumentationDisable_Reset()
        {
            _DocumentationDisable = null;
        }
        /// <summary>
        /// Úložiště objektu v paměti, při prvním použití DocumentationDisable_Direct je objekt naplněn a následně využíván.
        /// </summary>
        private static System.Drawing.Image _DocumentationDisable = null;
        #endregion
        #region Image DocumentationPressed
        /// <summary>
        /// Vrátí obrázek, vytvořený na základě obrázku documentation_pressed.png.
        /// Vrací přímou referenci na objekt v paměti = volání je velice rychlé (pod 1 mikrosekundu), 
        /// ale protože se vrací živá reference, pak zásahy do vráceného objektu se projeví v objektu v paměti = natrvalo.
        /// Případně je možno vyvolat metodu DocumentationPressed_Reset(), která zajistí regenerování obrázku z jeho definice.
        /// Bezpečnější je používání property DocumentationPressed, která vrací vždy nový objekt.
        /// Pro používání pro Button.Image, kde bude nastavováno Button.Enabled = false; je třeba použít property DocumentationPressed_FromFile.
        /// </summary>
        /// <remarks>
        /// Plné jméno vstupního souboru:
        /// C:\LCS\Tools\GreenSchedule4\FrxEditor\Pics\32\documentation_pressed.png
        /// </remarks>
        public static System.Drawing.Image DocumentationPressed_Cached
        {
            get
            {
                if (_DocumentationPressed == null) _DocumentationPressed = DocumentationPressed;
                return _DocumentationPressed;
            }
        }
        /// <summary>
        /// Vrátí obrázek, vytvořený na základě obrázku documentation_pressed.png.
        /// Nelze používat jako Image pro Buttony, kde bude nastavováno Enabled = false (pak dojde k chybě .NET: Ot of memory).
        /// Pak je třeba použít Image DocumentationPressed_FromFile.
        /// Vrací vždy novou instanci = volání je při častém používání výrazně (až 1000krát) pomalejší než použití DocumentationPressed_Cached
        /// (kde ale hrozí nebezpečí pokažení obrázku v paměti).
        /// Čas pro vytvoření jednoho Image (tj. každé jednotlivé čtení této property) pro obrázek velikosti 32x32 px (32bpp) je průměrně 350 mikrosekund.
        /// Pokud je třeba používat obrázek často a rychle, je možné využít property DocumentationPressed_Cached.
        /// </summary>
        /// <remarks>
        /// Plné jméno vstupního souboru:
        /// C:\LCS\Tools\GreenSchedule4\FrxEditor\Pics\32\documentation_pressed.png
        /// </remarks>
        public static System.Drawing.Image DocumentationPressed { get { return _ImageCreateFrom(_DocumentationPressed_string, null); } }
        /// <summary>
        /// Vrátí obrázek, načtený ze souboru documentation_pressed.png.
        /// Vrací vždy novou instanci = volání je při častém používání výrazně (až 1000krát) pomalejší než použití DocumentationPressed_Cached
        /// (kde ale hrozí nebezpečí pokažení obrázku v paměti).
        /// Čas pro vytvoření jednoho Image (tj. každé jednotlivé čtení této property) pro obrázek velikosti 32x32 px (32bpp) je průměrně 350 mikrosekund.
        /// Pokud je třeba používat obrázek často a rychle, je možné využít property DocumentationPressed_Cached.
        /// </summary>
        /// <remarks>
        /// Plné jméno vstupního souboru:
        /// C:\LCS\Tools\GreenSchedule4\FrxEditor\Pics\32\documentation_pressed.png
        /// </remarks>
        public static System.Drawing.Image DocumentationPressed_FromFile { get { return _ImageCreateFrom(_DocumentationPressed_string, "documentation_pressed.png"); } }
        /// <summary>
        /// Vygeneruje a vrátí string, který definuje obsah souboru DocumentationPressed
        /// </summary>
        /// <returns></returns>
        private static string _DocumentationPressed_string()
        {
            System.Text.StringBuilder sb = new System.Text.StringBuilder(3132);
            sb.Append("iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAA");
            sb.Append("CXBIWXMAAA3VAAAN1QE91ljxAAAAE3RFWHRTb3VyY2UAT3h5Z2VuIEljb25z7Biu6AAAABp0RVh0U29mdHdhcmUAUGFpbnQuTkVUIHYzLjUuMTAw9HKhAAAIXElEQVRY");
            sb.Append("R81Xe3BU1R2+MKm0tVWnOlPr2MHp0IfAVMgQNEBCElLAChUno7bCTMdpbeuoTdGIhQoSBGKEQCQJMe9kk7B5P/e99+57s5tNSAIJJERIdMT6R1vrlHYECvn6nbO7MVs2");
            sb.Append("/tVOm5lvzsm5957f7/s9vnNWUf6f/hYtWnQ//Un8byJiY17aGe6+MXgHPoA3NB3B+3PmYk08E2tz16f4P9EvcAmeW3ARLk8ITqcTtJzxRUHPEBvZjfWw9VZBNZ0iGqBa");
            sb.Append("mqDZuqCaW7leB1tPBVEJazfH7srw/701sBnq+E4j322Xo91QA3tvtYS5LX9+BxYuXLiEXqUS28f/Alz7ZAQXz/bA1HwAZsLSlgfNeAKaoRBOSzl8vjb4A10I9hsRDFkI");
            sb.Append("G4KDDjjtjXC7WuCw0mjPO3zHBJ/fAM1cBWsnv/2CCKRq9l74Bv+ICx92zriK0rDqXoWsamHpKIC5JReW1lxU7U6CLjcVjYcyUbFrFedpKP7tUtTtT8W7rzyE2n3r0Fn2");
            sb.Append("HBrezER70Q6cOsz3XkvCqbe2MAplUQcejpeCVEvbW8xTEBcv05GTaSJXUBl2n7cdPpcOfd4mWDsOE8dg7SqEpf0oU1XBjQlDGdTeEqjWZj47AbupGk6tA7bWN+BSW2DS");
            sb.Append("5zJNZXA4HDOjutuA0w8Qi8/MdSTVbqiVHgZcVTNFzyi4+3Y6wPw3HX0GZa+uIONElOUkor1kB43nw1D/smRuE8y0FrQcfxIl2cuZrqNcK4Wh7hXo8zbh5M4fMjqJ3EsH");
            sb.Append("jfsP1d4ODC4Fhr8vSIb/FixYIGogjdjh6TtLloXchIXTmgefp40sS+WmdpMovmJ4fQY4VRanqRaapRZD4+fQPxxi4engUNsxNDEBr9cEt7OHa/Vc65KF6KADocoEzAz8");
            sb.Append("ABhb9rkDc0KR4Tv9MUOqYwEehFtrQHH2g6jbl4J3yaTy96tRz/xW73kE+vwtxFbWxkFUv75GshT5rt2XSqxH0UtLGalCVOxJQQ2/Vy16GWF/iYJrfpGC78R1YIMoRFtP");
            sb.Append("FQvvTTjMxXC7WyUz1VwrGbsEc6ueTjL3xmq47A1waa3c3CzXo2xl+xIuj50pMjJ6DdIBd6GCvzvvxc3AffM58FHEgUNQDcVoKXgCpb9bLtnp9qehas8asnuQGlAiC8vj");
            sb.Append("6maNrJaVLphX7EpCY94WMm6mMx3orsxG3RvpdK5NOqAeUfCJ9U5cdX8jvgPegcsy/7L3zeXoC5rJQAiRXvayQ+uiqByTFd83GERolMoZDHGdEZAs+b7TiP6z4wiNvcd1");
            sb.Append("IzS1l88YHXaBp0DB36y34TPHlyfitWOGJzjJIiygA/lSQNqKtuPkyytQ/moimo9loXL3alTvXSc7oqsimzWxgTWShoaDj6L+wEZ0lb8kNaB2L+uGdaE/kiXZq5ZwBGh0");
            sb.Append("2S2GY5Twz8D1K1OYOq+ypxlmtpnIvZ2wsect7WTPghIRUM16RqYDmr0rPAqm1A4HRxEREQ2HauS7HRIiAi8UncYJN/C2A7E6EKOEJ9Kwkkqo2Y3SaDTfIufif9FSqrGO");
            sb.Append("TulkcYl8i/NCjlaeA2Sr2Trl+SH21WzdRK+MQNYBL17ruI6cTsTUQFwlFB/YmTtrN3VgjnEhWnZjxDifq2YRDeEEQx1hq1pFVIRxRoVzAbFfxi43ntNdxbO6f3MgqoR9");
            sb.Append("WsnM8SwF91AJNdUKOzcOG+epJ062iPFwm0WMC8OzxmMNR50Q0RQOrHjRhW0ln2HryZvxldDl6ZMbC+My3GQqRhdVzR+wITA0jP6xKQycew/DF/+E4ekrCJ67DKdbkyyF");
            sb.Append("QX9oGCMf3MDg5F8xdOkq/IPnZTqFA4ufdSIl/x9Izr8Rtw3TRReolpYwW3HGS/bMuUWHnsoXqYZUwbe3ofFAJufJxFoqYQr7PWc25L7+YbQW/4LawXeP/JTasVYaF7jj");
            sb.Append("KRVL913Bkr3X40uxJ3hhNu9+vwUDoyPs9fMYnJjG0OSHPO+t1HRR4eENxaUkOnfYjIzMZQxc+JRrXrnucrvZOeGjWHSB8ngf7sn5J+7aeXMeHQjQAZF3Fp7XY0LF7jWo");
            sb.Append("2Zsq1UycAWU5q3jeb5Ls2kt+Cae5gUr4MM+FbWg9vp0XlxqU5jyC3ro/8AJThcrXM1CXmznrZFwdmHsYeQITdEAvQy8i0Dc0IpXN6VRlhYfZWsPQVNnn0Qj4ggPw9BGB");
            sb.Append("Ebj9XgyOfwSXNxh5zncZgZX7v4YXxpKRPZ4cowNRH9LdviHJXhSeL+iB7vDjPPcF+7VoLniK+c8K97cQG9UEB4tLFFjwzDQa8ndQFdPRU5VD1pv4zXpZI52lz886ef/O");
            sb.Append("hchyLcfPAg/FdMF36cF6cScc/Ri4ce1TvD89BpffT8Gpmf1YRMHnc7EmLjEyk2Skzhaek/Nor0cjIkbVEu7/KO74tYKU3geQaV8SK0Q91b9huIZxdqp9JlSViaRvK/Kj");
            sb.Append("ztJfofHgRur/Zur+ZrSzust2JbOy18F46pBkL6GaJRxsX02zUYpFyDVCGPdx3Sb3U36uYJn+m1jZ+a1YB5rykuQGZyY7Map/TN4JJQMeJFLjRWHykiqiYO0Sla+yBmhM");
            sb.Append("qJ0wTiek8YgTYu4Uxt0BEhuinoTvA8rTCu6r+joWN94V60Db8Q3hMBmPzTQ9n4C7vxp2QLMbaDyi81LtPlc6h2q5hb0wLCGNB2l8EE6XV56u0oEnFHyl+Eu4s3xRjAPi");
            sb.Append("Tpgu7oRh1uG8RW81UnLjSK1kH0nBLHvZGWEnNLtJ/oARtytjw06mhTpAB5R3FCwoVuLqQPrcgvlPzoW0ywgoyup5f5olJCSISIjfbgIbIsjkKPAjYmMEmzhGsZlzgUcj");
            sb.Append("+DFHgcci2MJxawQ/4d3je/M68L948C/c1siak/y91wAAAABJRU5ErkJggg==");
            return sb.ToString();
        }
        /// <summary>
        /// Resetuje obrázek v paměti.
        /// Následující použití property DocumentationPressed_Direct si vytvoří nový, korektní - podle jeho originální deklarace.
        /// Tuto metodu je vhodné použít v situaci, kdy je správnost obrázku v paměti nejistá.
        /// </summary>
        public static void DocumentationPressed_Reset()
        {
            _DocumentationPressed = null;
        }
        /// <summary>
        /// Úložiště objektu v paměti, při prvním použití DocumentationPressed_Direct je objekt naplněn a následně využíván.
        /// </summary>
        private static System.Drawing.Image _DocumentationPressed = null;
        #endregion
        #region SPOLEČNÉ METODY PRO KONVERZI
        /// <summary>
        /// Vrátí Image z definice (string). Image generuje buď v paměti, anebo s pomocí souboru.
        /// Pokud není zadán parametr (cacheFileName) (když je null), generuje se Image v paměti.
        /// Pokud je soubor (cacheFileName) definován, pak se Image čte z něj.
        /// Pokud soubor neexistuje, nejprve se vytvoří.
        /// Umístění souboru (adresář) je dán property _ImageCacheDir, defaultně je to adresář (Sys:\Documents and Settings\All Users\Data aplikací\IconCache).
        /// Obsah obrázku definuje metoda getDataMethod.
        /// </summary>
        /// <param name="getDataMethod"></param>
        /// <param name="cacheFileName"></param>
        /// <returns></returns>
        private static System.Drawing.Image _ImageCreateFrom(_GetStringDelegate getDataMethod, string cacheFileName)
        {
            System.Drawing.Image image;
            if (cacheFileName == null)
            {
                using (System.IO.MemoryStream ms = new System.IO.MemoryStream(Convert.FromBase64String(getDataMethod())))
                {
                    image = System.Drawing.Image.FromStream(ms);
                }
                return image;
            }
            string fileName = System.IO.Path.Combine(_ImageCacheDir, cacheFileName);
            if (!System.IO.File.Exists(fileName))
                System.IO.File.WriteAllBytes(fileName, Convert.FromBase64String(getDataMethod()));
            if (System.IO.File.Exists(fileName))
                return Image.FromFile(fileName);
            return null;
        }
        /// <summary>
        /// Obsahuje jméno adresáře, který slouží jako Cache pro obrázky systému.
        /// </summary>
        private static string _ImageCacheDir
        {
            get
            {
                if (__ImageCacheDir == null)
                    __ImageCacheDir = Asol.Reporting.Support.Assistant.GetPath(Support.Assistant.PathType.ApplicationCache, @"Pics32");
                return __ImageCacheDir;
            }
        } private static string __ImageCacheDir;

        /// <summary>
        /// Předpis pro metody, které generují obsah souboru s daty
        /// </summary>
        /// <returns></returns>
        private delegate string _GetStringDelegate();
        /// <summary>
        /// Vrátí Icon z dat (string), která jsou předána na vstup v kódování Base64
        /// </summary>
        /// <param name="data">Vstupní data v kódování Base64</param>
        /// <returns>Icon vytvořená z dat</returns>
        public static System.Drawing.Icon ConvertStringToIcon(string data)
        {
            System.Drawing.Icon icon;
            using (System.IO.MemoryStream ms = new System.IO.MemoryStream(Convert.FromBase64String(data)))
            {
                icon = new System.Drawing.Icon(ms);
            }
            return icon;
        }
        /// <summary>
        /// Vrátí Cursor z dat (string), která jsou předána na vstup v kódování Base64
        /// </summary>
        /// <param name="data">Vstupní data v kódování Base64</param>
        /// <returns>Cursor vytvořený z dat</returns>
        public static System.Windows.Forms.Cursor ConvertStringToCursor(string data)
        {
            System.Windows.Forms.Cursor cursor;
            using (System.IO.MemoryStream ms = new System.IO.MemoryStream(Convert.FromBase64String(data)))
            {
                cursor = new System.Windows.Forms.Cursor(ms);
            }
            return cursor;
        }
        #endregion
    }
}
